home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 20.0 KB | 600 lines |
- 100 SCREEN 0 :WIDTH 80 :CLS :KEY OFF
- 110 IF INITIALIZE = 0 THEN GOSUB 1000 : INITIALIZE = 1
- 120 '
- 130 PRINT "************************************************************
- 140 PRINT "* ******************************************************** *
- 150 PRINT "* * **************************************************** * *
- 160 PRINT "* * ** CHECKBOOK MASTER BY JEFFRY L. BRETZ ** * *
- 170 PRINT "* * ** OF OMAHA, NEBRASKA ** * *
- 180 PRINT "* * **************************************************** * *
- 190 PRINT "* ******************************************************** *
- 200 PRINT "************************************************************
- 210 '
- 220 FOR X = 1 TO 10 ' INITIALIZE THE SOFT KEYS
- 230 KEY X,""
- 240 NEXT X
- 250 KEY 1, "MENU "+CHR$(13)
- 260 KEY 2, "READ "+CHR$(13)
- 270 KEY 3, "SAVE "+CHR$(13)
- 280 KEY 4, "UPDATE "+CHR$(13)
- 290 KEY 5, "REVIEW "+CHR$(13)
- 300 KEY 10,"TERMINATE"+CHR$(13)
- 310 '
- 320 LOCATE 25,1 : PRINT "F1 = MENU"; ' REPRINT LINE 25
- 330 LOCATE 25,13 : PRINT "F2 = READ";
- 340 LOCATE 25,25 : PRINT "F3 = SAVE";
- 350 LOCATE 25,37 : PRINT "F4 = UPDATE";
- 360 LOCATE 25,51 : PRINT "F5 = REVIEW";
- 370 LOCATE 25,65 : PRINT "F10 = TERMINATE";
- 380 '
- 390 LOCATE 10,1 ' SET UP MENU SELECTION
- 400 PRINT "USING THE SOFT KEYS (F1,F2,F3,F4,F5 AND F10)
- 410 PRINT "SELECT THE FUNCTION DESIRED -
- 420 PRINT
- 430 PRINT "F1 = MENU = REPRINT THIS MENU PAGE
- 440 PRINT
- 450 PRINT "F2 = READ = READ THE OLD MASTER FILE FROM DISK OR CASSETTE
- 460 PRINT
- 470 PRINT "F3 = SAVE = SAVE THE NEW MASTER FILE TO DISK OR CASSETTE
- 480 PRINT
- 490 PRINT "F4 = UPDATE = UPDATE OR ENTER NEW CHECKS TO THE FILE
- 500 PRINT
- 510 PRINT "F5 = REVIEW = PRINTS A LISTING OF THE CATAGORY CODES
- 520 PRINT
- 530 PRINT "F10 = TERMINATE = END PROGRAM
- 540 LOCATE 11,30 :INPUT ">>>>> ";A$
- 550 FOR X = 1 TO 1000 : NEXT
- 560 IF A$ = "MENU" THEN GOTO 100
- 570 IF A$ = "READ" THEN GOTO 2000
- 580 IF A$ = "SAVE" THEN GOTO 3000
- 590 IF A$ = "UPDATE" THEN GOTO 6000
- 600 IF A$ = "REVIEW" THEN GOTO 4000
- 610 IF A$ = "TERMINATE" THEN GOTO 5000
- 620 CLS
- 630 PRINT "INVALID REQUEST -
- 640 PRINT "PLEASE USE ONLY THE SOFT KEYS (F1,F2,F3,F4,F5, AND F10)
- 650 PRINT "LOCATED ON THE LEFT HAND SIDE OF THE KEYBOARD
- 660 PRINT
- 670 PRINT "PRESS ANY KEY TO RETURN TO MENU -
- 680 A$ = INKEY$ : IF A$ = "" THEN 680 ELSE 100
- 1000 '
- 1010 ' *****************************************************************
- 1020 ' * ************************************************************* *
- 1030 ' * * ********************************************************* * *
- 1040 ' * * ** INITIALIZATION ** * *
- 1050 ' * * ********************************************************* * *
- 1060 ' * ************************************************************* *
- 1070 ' *****************************************************************
- 1080 '
- 1090 '
- 1100 ' THE INITIALIZATION PROCESS SETS THE CATAGORY CODES FOR USE
- 1110 ' IN THE MAIN PROGRAM.
- 1120 '
- 1130 ' THESE CODES ARE LOCATED IN LINES 1230 THRU 1720 OF THE LISTING.
- 1140 '
- 1150 ' IF THIS SELECTION OF CATAGORY CODES DOES NOT MEET YOUR NEEDS, YOU
- 1160 ' MAY CHANGE THEM TO FIT ANY SYSTEM YOU HAVE.
- 1170 '
- 1180 ' PLEASE DO NOT CHANGE THE LENGTHS OF THE QUOTE MARKS AS THIS MAY
- 1190 ' MESS UP THE DISPLAY OF THE REVIEW PORTION OF THE PROGRAM.
- 1200 '
- 1210 OPTION BASE 1
- 1220 DEFINT A-Z : DIM A$(50),CATAGORY#(50)
- 1230 DIM CHECK%(100)
- 1240 DIM DATES$(100)
- 1250 DIM AMOUNT#(100)
- 1260 DIM CODE%(100)
- 1270 DIM DESCRIPT$(100)
- 1280 '
- 1290 FOR X = 1 TO 100
- 1300 CHECK%(X) = 0 : DATES$(X) = SPACE$(5) : AMOUNT#(X) = 0
- 1310 CODE%(X) = 0 : DESCRIPT$(X) = SPACE$(20)
- 1320 NEXT X
- 1330 '
- 1340 ' *****************************************************************
- 1350 ' * * ** CATAGORY INITIALIZATION ** * *
- 1360 ' *****************************************************************
- 1370 '
- 1380 A$( 1) = "01 = DEPOSIT "
- 1390 A$( 2) = "02 = W/D FOR CASH "
- 1400 A$( 3) = "03 = HOUSE/RENT "
- 1410 A$( 4) = "04 = CAR #1 "
- 1420 A$( 5) = "05 = CAR #2 "
- 1430 A$( 6) = "06 = TELEPHONE "
- 1440 A$( 7) = "07 = GAS/HOME "
- 1450 A$( 8) = "08 = WATER/HOME "
- 1460 A$( 9) = "09 = SEWER/HOME "
- 1470 A$(10) = "10 = ELECTRICITY "
- 1480 A$(11) = "11 = MISC-UTILITIES "
- 1490 A$(12) = "12 = GROCERIES "
- 1500 A$(13) = "13 = INSURANCE/HOME "
- 1510 A$(14) = "14 = INSURANCE/CAR "
- 1520 A$(15) = "15 = INSURANCE/LIFE "
- 1530 A$(16) = "16 = INSURANCE/MEDIC"
- 1540 A$(17) = "17 = INSURANCE/DENTL"
- 1550 A$(18) = "18 = INSURANCE/BUS "
- 1560 A$(19) = "19 = VISA "
- 1570 A$(20) = "20 = MASTER-CARD "
- 1580 A$(21) = "21 = AMER-EXPRESS "
- 1590 A$(22) = "22 = ENTERTAINMENT "
- 1600 A$(23) = "23 = RESTAURANT "
- 1610 A$(24) = "24 = TUITION "
- 1620 A$(25) = "25 = BOOKS "
- 1630 A$(26) = "26 = COMPUTER EQUIP "
- 1640 A$(27) = "27 = SUBSCRIPTIONS "
- 1650 A$(28) = "28 = GAS FOR CAR "
- 1660 A$(29) = "29 = AUTO SERVICE "
- 1670 A$(30) = "30 = TRAVEL EXPENSES"
- 1680 A$(31) = "31 = MEDICINES "
- 1690 A$(32) = "32 = GIFTS "
- 1700 A$(33) = "33 = TAXES/FEDERAL "
- 1710 A$(34) = "34 = TAXES/STATE "
- 1720 A$(35) = "35 = CLOTHES "
- 1730 A$(36) = "36 = FURNITURE "
- 1740 A$(37) = "37 = "
- 1750 A$(38) = "38 = "
- 1760 A$(39) = "39 = "
- 1770 A$(40) = "40 = "
- 1780 A$(41) = "41 = "
- 1790 A$(42) = "42 = "
- 1800 A$(43) = "43 = INVESTMENTS "
- 1810 A$(44) = "44 = -NOW- INTEREST "
- 1820 A$(45) = "45 = BALANCE FORWARD"
- 1830 RETURN
- 2000 '
- 2010 CLS : SCREEN 0 : WIDTH 80 : LASTENTRY = 0
- 2020 '
- 2030 PRINT "************************************************************
- 2040 PRINT "* ******************************************************** *
- 2050 PRINT "* * **************************************************** * *
- 2060 PRINT "* * ** READ INPUT FILE ** * *
- 2070 PRINT "* * **************************************************** * *
- 2080 PRINT "* ******************************************************** *
- 2090 PRINT "************************************************************
- 2100 '
- 2110 LOCATE 9,1
- 2120 PRINT "ENTER THE MONTH OF THE LAST STATEMENT ":PRINT
- 2130 PRINT "JANUARY = DEFDBL 1 DEFSNG"
- 2140 PRINT "FEBUARY = DEFDBL 2 DEFSNG"
- 2150 PRINT "MARCH = DEFDBL 3 DEFSNG"
- 2160 PRINT "APRIL = DEFDBL 4 DEFSNG"
- 2170 PRINT "MAY = DEFDBL 5 DEFSNG"
- 2180 PRINT "JUNE = DEFDBL 6 DEFSNG"
- 2190 PRINT "JULY = DEFDBL 7 DEFSNG"
- 2200 PRINT "AUGUST = DEFDBL 8 DEFSNG"
- 2210 PRINT "SEPTEMBER = DEFDBL 9 DEFSNG"
- 2220 PRINT "OCTOBER = DEFDBL 10 DEFSNG"
- 2230 PRINT "NOVEMBER = DEFDBL 11 DEFSNG"
- 2240 PRINT "DECEMBER = DEFDBL 12 DEFSNG" : LOCATE 9,40 : PRINT ">>>> ";
- 2250 '
- 2260 INPUT MONTH:IF (MONTH > 12) OR (MONTH < 1) THEN CLS : GOTO 2000
- 2270 LOCATE 10,40 : CLOSE
- 2280 ON MONTH GOTO 2300,2310,2320,2330,2340,2350,2360,2370,2380,2390,2400,2410
- 2290 '
- 2300 OPEN "JANUARY " FOR INPUT AS #1 : PRINT "READING JANUARY ";:GOTO 2420
- 2310 OPEN "FEBUARY " FOR INPUT AS #1 : PRINT "READING FEBUARY ";:GOTO 2420
- 2320 OPEN "MARCH " FOR INPUT AS #1 : PRINT "READING MARCH ";:GOTO 2420
- 2330 OPEN "APRIL " FOR INPUT AS #1 : PRINT "READING APRIL ";:GOTO 2420
- 2340 OPEN "MAY " FOR INPUT AS #1 : PRINT "READING MAY ";:GOTO 2420
- 2350 OPEN "JUNE " FOR INPUT AS #1 : PRINT "READING JUNE ";:GOTO 2420
- 2360 OPEN "JULY " FOR INPUT AS #1 : PRINT "READING JULY ";:GOTO 2420
- 2370 OPEN "AUGUST " FOR INPUT AS #1 : PRINT "READING AUGUST ";:GOTO 2420
- 2380 OPEN "SEPTEMBE" FOR INPUT AS #1 : PRINT "READING SEPTEMBER ";:GOTO 2420
- 2390 OPEN "OCTOBER " FOR INPUT AS #1 : PRINT "READING OCTOBER ";:GOTO 2420
- 2400 OPEN "NOVEMBER" FOR INPUT AS #1 : PRINT "READING NOVEMBER ";:GOTO 2420
- 2410 OPEN "DECEMBER" FOR INPUT AS #1 : PRINT "READING DECEMBER ";:GOTO 2420
- 2420 'colection point for BASIC DEFDBL CASE DEFSNG STATEMENT
- 2430 FOR X = 1 TO 100
- 2440 CHECK%(X) = 0 : DATES$(X) = SPACE$(5) : AMOUNT#(X) = 0
- 2450 CODE%(X) = 0 : DESCRIPT$(X) = SPACE$(20)
- 2460 NEXT X
- 2470 INPUT #1,LASTENTRY
- 2480 X = 1
- 2490 WHILE X < LASTENTRY + 1
- 2500 INPUT #1,CHECK%(X),DATES$(X),AMOUNT#(X)
- 2510 X = X + 1
- 2520 WEND
- 2530 X = 1
- 2540 WHILE X < 51
- 2550 INPUT #1,CATAGORY#(X)
- 2560 X = X + 1
- 2570 WEND
- 2580 '
- 2590 CLOSE #1
- 2600 '
- 2610 LOCATE 24,1
- 2620 PRINT "FILE READ COMPLETED - PRESS ANY KEY TO RETURN TO MENU -";
- 2630 A$ = INKEY$ : IF A$ = "" THEN 2630
- 2640 CLS : GOTO 100
- 3000 '
- 3010 CLS : SCREEN 0 : WIDTH 80
- 3020 CATAGORY#(45) = BALANCE#
- 3030 PRINT "************************************************************
- 3040 PRINT "* ******************************************************** *
- 3050 PRINT "* * **************************************************** * *
- 3060 PRINT "* * ** SAVE OUTPUT FILE ** * *
- 3070 PRINT "* * **************************************************** * *
- 3080 PRINT "* ******************************************************** *
- 3090 PRINT "************************************************************
- 3100 '
- 3110 LOCATE 9,1
- 3120 PRINT "ENTER THE MONTH OF THIS STATEMENT ":PRINT
- 3130 PRINT "JANUARY = DEFDBL 1 DEFSNG"
- 3140 PRINT "FEBUARY = DEFDBL 2 DEFSNG"
- 3150 PRINT "MARCH = DEFDBL 3 DEFSNG"
- 3160 PRINT "APRIL = DEFDBL 4 DEFSNG"
- 3170 PRINT "MAY = DEFDBL 5 DEFSNG"
- 3180 PRINT "JUNE = DEFDBL 6 DEFSNG"
- 3190 PRINT "JULY = DEFDBL 7 DEFSNG"
- 3200 PRINT "AUGUST = DEFDBL 8 DEFSNG"
- 3210 PRINT "SEPTEMBER = DEFDBL 9 DEFSNG"
- 3220 PRINT "OCTOBER = DEFDBL 10 DEFSNG"
- 3230 PRINT "NOVEMBER = DEFDBL 11 DEFSNG"
- 3240 PRINT "DECEMBER = DEFDBL 12 DEFSNG" : LOCATE 9,40 : PRINT ">>>> ";
- 3250 '
- 3260 INPUT MONTH:IF (MONTH > 12) OR (MONTH < 1) THEN CLS : GOTO 3000
- 3270 LOCATE 10,40 : CLOSE
- 3280 ON MONTH GOTO 3300,3310,3320,3330,3340,3350,3360,3370,3380,3390,3400,3410
- 3290 '
- 3300 OPEN "JANUARY " FOR OUTPUT AS #1 : PRINT "WRITING JANUARY ":GOTO 3420
- 3310 OPEN "FEBUARY " FOR OUTPUT AS #1 : PRINT "WRITING FEBUARY ":GOTO 3420
- 3320 OPEN "MARCH " FOR OUTPUT AS #1 : PRINT "WRITING MARCH ":GOTO 3420
- 3330 OPEN "APRIL " FOR OUTPUT AS #1 : PRINT "WRITING APRIL ":GOTO 3420
- 3340 OPEN "MAY " FOR OUTPUT AS #1 : PRINT "WRITING MAY ":GOTO 3420
- 3350 OPEN "JUNE " FOR OUTPUT AS #1 : PRINT "WRITING JUNE ":GOTO 3420
- 3360 OPEN "JULY " FOR OUTPUT AS #1 : PRINT "WRITING JULY ":GOTO 3420
- 3370 OPEN "AUGUST " FOR OUTPUT AS #1 : PRINT "WRIRING AUGUST ":GOTO 3420
- 3380 OPEN "SEPTEMBE" FOR OUTPUT AS #1 : PRINT "WRITING SEPTEMBER ":GOTO 3420
- 3390 OPEN "OCTOBER " FOR OUTPUT AS #1 : PRINT "WRITING OCTOBER ":GOTO 3420
- 3400 OPEN "NOVEMBER" FOR OUTPUT AS #1 : PRINT "WRITING NOVEMBER ":GOTO 3420
- 3410 OPEN "DECEMBER" FOR OUTPUT AS #1 : PRINT "WRITING DECEMBER ":GOTO 3420
- 3420 'colection point for BASIC DEFDBL CASE DEFSNG STATEMENT
- 3430 WRITE #1,LASTENTRY
- 3440 X = 1
- 3450 WHILE X < LASTENTRY +1
- 3460 WRITE #1,CHECK%(X),DATES$(X),AMOUNT#(X)
- 3470 X = X + 1
- 3480 WEND
- 3490 X = 1
- 3500 WHILE X < 51
- 3510 PRINT #1,CATAGORY#(X)
- 3520 X = X + 1
- 3530 WEND
- 3540 '
- 3550 CLOSE #1
- 3560 '
- 3570 LOCATE 24,1
- 3580 PRINT "FILE WRITE COMPLETED - PRESS ANY KEY TO RETURN TO MENU -";
- 3590 A$ = INKEY$ : IF A$ = "" THEN 3590
- 3600 RUN
- 4000 '
- 4010 CLS : SCREEN 0 : WIDTH 80
- 4020 '
- 4030 PRINT "************************************************************
- 4040 PRINT "* ******************************************************** *
- 4050 PRINT "* * **************************************************** * *
- 4060 PRINT "* * ** EXPENSE CATAGORY REVIEW ** * *
- 4070 PRINT "* * **************************************************** * *
- 4080 PRINT "* ******************************************************** *
- 4090 PRINT "************************************************************
- 4100 '
- 4110 LOCATE 9,1
- 4120 FOR X = 1 TO 45 : PRINT A$(X) ,: NEXT
- 4130 LOCATE 25,1
- 4140 PRINT "PRESS ANY KEY TO CONTINUE -";
- 4150 A$ = INKEY$ : IF A$ = "" THEN 4150
- 4160 CLS : GOTO 100
- 5000 '
- 5010 CLS : SCREEN 0 : WIDTH 80
- 5020 '
- 5030 PRINT "************************************************************
- 5040 PRINT "* ******************************************************** *
- 5050 PRINT "* * **************************************************** * *
- 5060 PRINT "* * ** PROGRAM TERMINATION ** * *
- 5070 PRINT "* * **************************************************** * *
- 5080 PRINT "* ******************************************************** *
- 5090 PRINT "************************************************************
- 5100 '
- 5110 LOCATE 9,1
- 5120 PRINT "HAVE YOU SAVED THE UPDATED FILE ONTO TAPE ? (Y) OR (N) ..."
- 5130 A$ = INKEY$ : IF A$ = "" THEN 5130
- 5140 IF A$ = "N" THEN 3000
- 5150 PRINT FRE(X)
- 5160 LOCATE 20,1:KEY ON:CLEAR
- 6000 '
- 6010 CLS : SCREEN 0 : WIDTH 80 : CLOSE
- 6020 '
- 6030 PRINT "************************************************************
- 6040 PRINT "* ******************************************************** *
- 6050 PRINT "* * **************************************************** * *
- 6060 PRINT "* * ** FILE UPDATE ** * *
- 6070 PRINT "* * **************************************************** * *
- 6080 PRINT "* ******************************************************** *
- 6090 PRINT "************************************************************
- 6100 '
- 6110 '******************** FIND OUT IF THERE ARE ENTRIES TO DELETE
- 6120 PRINT "DO YOU HAVE ANY CANCELLED CHECKS OR DEP-W/D RECIEPTS TO BE
- 6130 INPUT "DELETED FROM THE LISTING ? (1=YES 2=NO) ";A
- 6140 IF A = 1 THEN 6170
- 6150 IF A = 2 THEN 6980
- 6160 GOTO 6000
- 6170 '******************** DELETE THE APPROPIATE ENTRIES
- 6180 CLS
- 6190 PRINT "DELETION BEGINS WITH CHECKS
- 6200 PRINT "PLEASE ENTER THE CHECK NUMBERS - (1 TO 32700 ONLY)"
- 6210 PRINT "AND IF (C)ORRECT OR (I)NCORRECT
- 6220 LOCATE 25,1
- 6230 A% = 0
- 6240 POINTER = 1
- 6250 PRINT "ENTER A NEGATIVE NUMBER TO TERMINATE ";
- 6260 LOCATE 5,1
- 6270 WHILE A% >= 0
- 6280 PRINT
- 6290 INPUT; A%
- 6300 IF (A%<=0) OR (A%>32700) THEN PRINT : GOTO 6270
- 6310 GOSUB 6350
- 6320 WEND
- 6330 GOSUB 6850
- 6340 GOTO 6520
- 6350 '******************** SUBROUTINE TO FIND AND DELETE CHECKS
- 6360 X% = 1
- 6370 IF X% > LASTENTRY THEN PRINT : PRINT "UNABLE TO FIND ENTRY "; : RETURN
- 6380 IF CHECK%(X%) <> A% THEN X% = X% + 1 : GOTO 6370
- 6390 LOCATE ,10
- 6400 PRINT DATES$(X%); ' PRINT THE DATE
- 6410 LOCATE ,20
- 6420 PRINT USING "$$#######,.##" ; AMOUNT#(X%); ' AMOUNT
- 6430 LOCATE ,40
- 6440 INPUT; "(C)ORRECT OR (I)NCORRECT - ";A$
- 6450 IF MID$(A$,1,1) = "C" THEN 6490
- 6460 IF MID$(A$,1,1) = "c" THEN 6490
- 6470 PRINT : PRINT "ENTRY NOT DELETED : PLEASE ENTER NEXT CHECK NUMBER ";
- 6480 RETURN
- 6490 CHECK%(X%) = 0 : DATES$(X%) = " " : AMOUNT#(X%) = 0
- 6500 CODE%(X%) = 0 : DESCRIPT$(X%) = SPACE$(20)
- 6510 RETURN
- 6520 '******************** DELETE THE DEPOSITS AND WITHDRAWLS
- 6530 GOSUB 7460 ' 2 sec delay
- 6540 MARKER = 0
- 6550 FOR X% = 1 TO LASTENTRY
- 6560 IF CHECK%(X%) > 32700 THEN MARKER = 1
- 6570 NEXT X%
- 6580 IF MARKER = 0 THEN GOTO 6980 ' if no dep-w/d goto insert section
- 6590 CLS
- 6600 PRINT "DELETION CONTINUES WITH WITHDRAWLS AND DEPOSITS
- 6610 PRINT "PLEASE CHECK THE LISTING AND DECIDE IF YOU WANT TO"
- 6620 PRINT "(D)ELETE IT OR (L)EAVE IT ALONE
- 6630 LOCATE 5,1
- 6640 FOR X% = 1 TO LASTENTRY
- 6650 IF CHECK%(X%) > 32700 THEN GOSUB 6690
- 6660 NEXT X%
- 6670 GOSUB 6850
- 6680 GOTO 6980
- 6690 '******************** SUBROUTINE TO DELETE THE DEPOSIT OR WITHDRAWL
- 6700 IF CHECK%(X%) = 32750 THEN PRINT "WITHDRAWL ";
- 6710 IF CHECK%(X%) = 32760 THEN PRINT "DEPOSIT ";
- 6720 LOCATE ,15
- 6730 PRINT DATES$(X%);
- 6740 LOCATE ,25
- 6750 PRINT USING "$$#######,.##" ; AMOUNT#(X%); ' AMOUNT
- 6760 LOCATE ,45
- 6770 INPUT "(D)ELETE OR (L)EAVE ALONE ";A$
- 6780 IF MID$(A$,1,1) = "D" THEN 6820
- 6790 IF MID$(A$,1,1) = "d" THEN 6820
- 6800 PRINT : PRINT "ENTRY NOT DELETED "
- 6810 RETURN
- 6820 CHECK%(X%) = 0 : DATES$(X%) = " " : AMOUNT#(X%) = 0
- 6830 CODE%(X%) = 0 : DESCRIPT$(X%) = SPACE$(20)
- 6840 RETURN
- 6850 '******************** ROUTINE TO PACK ALL DELETED ENTRIES IN ARRAY
- 6860 X% = 1
- 6870 IF X% > LASTENTRY THEN RETURN
- 6880 IF CHECK%(X%) <> 0 THEN X% = X% + 1 : GOTO 6870
- 6890 FOR Y% = X% TO LASTENTRY - 1
- 6900 CHECK%(Y%) = CHECK%(Y%+1)
- 6910 DATES$(Y%) = DATES$(Y%+1)
- 6920 AMOUNT#(Y%) = AMOUNT#(Y%+1)
- 6930 CODE%(Y%) = CODE%(Y%+1)
- 6940 DESCRIPT$(Y%) = DESCRIPT$(Y%+1)
- 6950 NEXT Y
- 6960 LASTENTRY = LASTENTRY - 1
- 6970 GOTO 6870
- 6980 '******************** ROUTINE TO ENTER NEW CHECKS OR DEP's OR W/D's
- 6990 CLS : PRINT "NEW ENTRIES SECTION " : PRINT
- 7000 PRINT "ENTER 1. CHECK NUMBER (1 THRU 32700) OR
- 7010 PRINT " (D) FOR DEPOSIT OR
- 7020 PRINT " (W) FOR WITHDRAWL
- 7030 PRINT " 2. THE DATE AS MM/DD
- 7040 PRINT " 3. THE AMOUNT
- 7050 PRINT " 4. THE CATAGORY CODE
- 7060 PRINT " 5. THE DISCRIPTION
- 7070 LOCATE 25,1
- 7080 PRINT "ENTER A NEGATIVE CHECK NUMBER TO RETURN TO THE MENU ";
- 7090 LOCATE 10,1
- 7100 INPUT "CHECK NUMBER OR (D)EPOSIT OR (W)ITHDRAWL - ";C$
- 7110 C% = VAL(C$)
- 7120 IF C% > 32765 THEN 6990 'out of range - try again
- 7130 IF C% > 0 THEN A1% = C% : GOTO 7200
- 7140 IF C% < 0 THEN 7830 ' neg means to exit
- 7150 IF ASC(C$)=68 THEN A1% = 32760 : GOTO 7200
- 7160 IF ASC(C$)=100 THEN A1% = 32760 : GOTO 7200
- 7170 IF ASC(C$)=87 THEN A1% = 32750 : GOTO 7200
- 7180 IF ASC(C$)=119 THEN A1% = 32750 : GOTO 7200
- 7190 GOTO 6990 ' invalid input
- 7200 LOCATE 12,1
- 7210 INPUT "THE DATE AS MM/DD - ";D$
- 7220 IF LEN(D$) = 5 THEN GOTO 7240
- 7230 A$ = STRING$(79,32) : LOCATE 12,1 : PRINT A$ : GOTO 7200
- 7240 A2$ = D$
- 7250 LOCATE 14,1
- 7260 INPUT "THE AMOUNT FROM $.00 TO $9,999,999.99 - ";E$
- 7270 IF VAL(E$) < 1E+07 THEN GOTO 7290
- 7280 A$ = STRING$(79,32) : LOCATE 14,1 : PRINT A$ : GOTO 7250
- 7290 A3# = VAL(E$)
- 7300 LOCATE 16,1
- 7310 INPUT "THE CATAGORY CODE - ";F$
- 7320 IF (VAL(F$)>0) AND (VAL(F$)<46) THEN 7340
- 7330 A$ = STRING$(79,32) : LOCATE 16,1 : PRINT A$ : GOTO 7300
- 7340 A4% = VAL(F$)
- 7350 LOCATE 18,1
- 7360 PRINT "DESCRIPTION USING UP TO 20 CHARACTERS - "
- 7370 PRINT "DO NOT ENTER DESCRIPTION PAST THE MARKER "
- 7380 PRINT " <<<<<<<<<<<<<<<<<<<<<< "
- 7390 INPUT G$
- 7400 IF LEN(G$) < 21 THEN GOTO 7420
- 7410 A$ = STRING$(79,32) : LOCATE 21,1 : PRINT A$ : GOTO 7350
- 7420 A5$ = G$
- 7430 GOSUB 7450
- 7440 GOTO 7530
- 7450 '******************** WAIT 2 SECONDS BEFORE CLEARING THE SCREEN
- 7460 FOR X = 1 TO 2
- 7470 Z$ = TIME$
- 7480 WHILE Z$ = TIME$
- 7490 WEND
- 7500 NEXT X
- 7510 CLS
- 7520 RETURN
- 7530 '******************** DISPLAY CHECK FOR APPROVAL
- 7540 LOCATE 5,1
- 7550 IF A1% = 32760 THEN PRINT "DEPOSIT " : GOTO 7580
- 7560 IF A1% = 32750 THEN PRINT "WITHDRAWL" : GOTO 7580
- 7570 PRINT A1%
- 7580 LOCATE 5,11
- 7590 PRINT A2$ ' DATE
- 7600 LOCATE 5,17
- 7610 PRINT A5$ ' DESCRIPTION
- 7620 LOCATE 5,38
- 7630 PRINT USING "$$#######,.##";A3# ' AMOUNT
- 7640 LOCATE 5,53
- 7650 PRINT "CATAGORY CODE = ";A4%
- 7660 LOCATE 10,1
- 7670 PRINT "IS THIS CORRECT (Y)ES OR (N)O - ";
- 7680 INPUT A$
- 7690 IF (A$ = "Y") OR (A$ = "y") THEN GOTO 7730
- 7700 CLS : PRINT ">>>>> CHECK NOT ENTERED <<<<< "
- 7710 GOSUB 7450 ' delay
- 7720 GOTO 7000 ' insert section / no cls
- 7730 '******************** ENTER CORRECT CHECK INTO FILE
- 7740 CATAGORY#(A4%) = CATAGORY#(A4%) + A3#
- 7750 LASTENTRY = LASTENTRY + 1
- 7760 CHECK%(LASTENTRY) = A1%
- 7770 DATES$(LASTENTRY) = A2$
- 7780 AMOUNT#(LASTENTRY) = A3#
- 7790 CODE%(LASTENTRY) = A4%
- 7800 DESCRIPT$(LASTENTRY) = A5$
- 7810 GOSUB 7450 ' delay
- 7820 GOTO 6980 ' top of insert section
- 7830 '******************** ROUTINE TO PRINT OUT ALL CHECKS
- 7840 CLS : PRINTOUT = 0 : SCREENOUT = 0 : BALANCE# = CATAGORY#(45)
- 7850 PRINT "WOULD YOU LIKE A PRINTOUT OF THE UPDATED FILE ?
- 7860 INPUT "(Y)ES OR (N)O - ",A$
- 7870 IF MID$(A$,1,1) = "Y" THEN OPEN "LPT1:" FOR OUTPUT AS #1 : PRINTOUT = 1
- 7880 IF MID$(A$,1,1) = "y" THEN OPEN "LPT1:" FOR OUTPUT AS #1 : PRINTOUT = 1
- 7890 LOCATE 4,1
- 7900 PRINT "WOULD YOU LIKE A SCREEN LISTING OF THE UPDATED FILE ?
- 7910 INPUT "(Y)ES OR (N)O - ",A$
- 7920 IF MID$(A$,1,1) = "Y" THEN OPEN "SCRN:" FOR OUTPUT AS #2 : SCREENOUT = 1
- 7930 IF MID$(A$,1,1) = "y" THEN OPEN "SCRN:" FOR OUTPUT AS #2 : SCREENOUT = 1
- 7940 GOSUB 7450 ' delay
- 7950 MARKER = 0
- 7960 FOR X = 1 TO LASTENTRY
- 7970 B% = CODE%(X)
- 7980 IF B% = 0 THEN 8020 ' if printing old listing -
- 7990 IF MARKER = 1 THEN 8020 ' if bal-fwd already printed
- 8000 PRINT : PRINT "BALANCE FORWARD FROM LAST UPDATE = ";CATAGORY#(45): PRINT
- 8010 PRINT : MARKER = 1
- 8020 '******************** ROUTINE TO PRINT STRING
- 8030 A1% = CHECK%(X)
- 8040 A2$ = DATES$(X)
- 8050 A3# = AMOUNT#(X)
- 8060 A4% = CODE%(X)
- 8070 A5$ = DESCRIPT$(X)
- 8080 '******************** PRINT CHECK NUMBER / DEP / W/D
- 8090 IF PRINTOUT <> 1 THEN 8140
- 8100 IF A1% < 32700 THEN PRINT #1,USING "######";A1%;
- 8110 IF A1% = 32760 THEN PRINT #1,"DEP ";
- 8120 IF A1% = 32750 THEN PRINT #1,"W/D ";
- 8130 PRINT #1," ";
- 8140 IF SCREENOUT <> 1 THEN 8190
- 8150 IF A1% < 32700 THEN PRINT #2,USING "######";A1%;
- 8160 IF A1% = 32760 THEN PRINT #2,"DEP ";
- 8170 IF A1% = 32750 THEN PRINT #2,"W/D ";
- 8180 PRINT #2," ";
- 8190 '******************** PRINT DATE
- 8200 IF PRINTOUT <> 1 THEN 8220
- 8210 PRINT #1,A2$;" ";
- 8220 IF SCREENOUT <> 1 THEN 8240
- 8230 PRINT #2,A2$;" ";
- 8240 '******************** PRINT DESCRIPTION
- 8250 C$ = SPACE$(20) : LSET C$ = A5$
- 8260 IF PRINTOUT <> 1 THEN 8280
- 8270 PRINT #1,C$;" ";
- 8280 IF SCREENOUT <> 1 THEN 8300
- 8290 PRINT #2,C$;" ";
- 8300 GOTO 8370
- 8310 '******************** PRINT SPACES IF NO DESCRIPTION
- 8320 C$ = SPACE$(20)
- 8330 IF PRINTOUT <> 1 THEN 8350
- 8340 PRINT #1,C$;" ";
- 8350 IF SCREENOUT <> 1 THEN 8370
- 8360 PRINT #2,C$;" ";
- 8370 '******************** PRINT CATAGORY CODE
- 8380 IF PRINTOUT <> 1 THEN 8410
- 8390 PRINT #1,USING "##";A4%;
- 8400 PRINT #1," ";
- 8410 IF SCREENOUT <> 1 THEN 8440
- 8420 PRINT #2,USING "##";A4%;
- 8430 PRINT #2," ";
- 8440 GOTO 8500
- 8450 '******************** PRINT SPACES IF NO CATAGORY CODE
- 8460 IF PRINTOUT <> 1 THEN 8480
- 8470 PRINT #1," "; ' 3 SPACES
- 8480 IF SCREENOUT <> 1 THEN 8500
- 8490 PRINT #2," "; ' 3 SPACES
- 8500 '******************** PRINT AMOUNT
- 8510 IF PRINTOUT <> 1 THEN 8530
- 8520 PRINT #1,USING "$$#######.## ";A3#;
- 8530 IF SCREENOUT <> 1 THEN 8550
- 8540 PRINT #2,USING "$$#######.## ";A3#;
- 8550 '******************** PRINT BALANCE
- 8560 IF A4% = 0 THEN 8630
- 8570 IF A1% = 32760 THEN BALANCE# = BALANCE# + A3# : GOTO 8590
- 8580 BALANCE# = BALANCE# - A3#
- 8590 IF PRINTOUT <> 1 THEN 8610
- 8600 PRINT #1,USING "$$########.##- ";BALANCE#;
- 8610 IF SCREENOUT <> 1 THEN 8630
- 8620 PRINT #2,USING "$$########.##- ";BALANCE#;
- 8630 '******************** PRINT CARRAGE RETURN AND END LOOP
- 8640 IF PRINTOUT <> 1 THEN 8660
- 8650 PRINT #1," "
- 8660 IF SCREENOUT <> 1 THEN 8680
- 8670 PRINT #2," "
- 8680 NEXT X
- 8690 '
- 8700 '******************** PRINT FINAL BALANCE
- 8710 PRINT
- 8720 IF PRINTOUT <> 1 THEN 8740
- 8730 PRINT #1,"FINAL BALANCE = ";BALANCE#
- 8740 IF SCREENOUT <> 1 THEN 8760
- 8750 PRINT #2,"FINAL BALANCE = ";BALANCE#
- 8760 '
- 8770 PRINT : PRINT
- 8780 PRINT "PRESS ENTER TO CONTINUE - "
- 8790 PRINT : PRINT : PRINT
- 8800 POKE 106,0
- 8810 A$ = INKEY$ : IF A$ = "" THEN 8810
- 8820 '
- 8830 IF PRINTOUT <> 1 THEN 8870
- 8840 FOR X = 1 TO 45
- 8850 PRINT #1,A$(X),CATAGORY#(X)
- 8860 NEXT X
- 8870 IF SCREENOUT <> 1 THEN 8930
- 8880 FOR X = 1 TO 45
- 8890 PRINT #2,A$(X),CATAGORY#(X)
- 8900 NEXT X
- 8910 '
- 8920 PRINT : PRINT
- 8930 PRINT "PRESS ENTER TO RETURN TO MENU - "
- 8940 A$ = INKEY$ : IF A$ = "" THEN 8940
- 8950 GOTO 100
-